<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>用户角色</title>
<link rel="stylesheet" type="text/css" href="../ext/resources/css/ext-all.css"></link>
<link rel="stylesheet" type="text/css" href="../ext/resources/css/xtheme-slate.css"></link>
<script src="../ext/adapter/ext/ext-base.js"></script>
<script src="../ext/ext-all.js"></script>
<script src="../ext/src/locale/ext-lang-zh_CN.js"></script>	
<script src="../ext/base/PagingMemoryProxy.js"></script>	
<script type="text/javascript">
Ext.onReady(function(){
	Ext.Ajax.on('requestcomplete',checkUserSessionStatus, this);      
	function checkUserSessionStatus(conn,response,options){      
	    if(response.getResponseHeader('sessionstatus')){      
	    	parent.location.href='/xdj/index.jsp';   
	    }      
	}  
	 
	 var userStore = new Ext.data.JsonStore({
		 url:"userrole_getUsers",
		 autoLoad : false,
		 fields:["userOptName", "userName","userID"]
	 });
	 
	 var roleStore = new Ext.data.JsonStore({
		 url:"role_load",
		 autoLoad : false,
		 fields:["name","id"]
	 });
	//Ext.BLANK_IMAGE_URL='ext/resources/images/default/s.gif';
	var treeloader = new Ext.tree.TreeLoader({   // dataUrl : 'tree.jsp'//这里可以不需要指定URL，在加载前事件响应里面设置 	
	});  
	var rootnode = new Ext.tree.AsyncTreeNode({  // 异步加载根节点 
		id : '2',  
		text : '大坝电厂',  
		cls : 'folder' 
	});  
	var thenode=rootnode;
	var tree=new Ext.tree.TreePanel({
		el : 'tree',// 将树形添加到一个指定的div中,非常重要！  
		border:false,
		region : 'west',  
		//title : '功能菜单',  
		lines:false, //线段
		width : 300, 
		height:900,
		split : true, 
		//autoHeight : true,  
		frame : true,// 美化界面    
		enableDD : false,// 是否支持拖拽效果  
		containerScroll : true,// 是否支持滚动条  
		rootVisible : true, // 是否隐藏根节点,很多情况下，我们选择隐藏根节点增加美观性  
		animate : true, // 动画效果  
		root : rootnode,
		loader : treeloader ,
		listeners : {
			'beforeload' : function(node) {
				treeloader.dataUrl = "../base/depart_load?parentID=parentID_" +node.id+"_EQ";
			},
			'click' : function(node) {
				thenode = node ;
				store.load({
					params:{
						departmentID:node.id
					}
				});
			}
		}
		
	// 树加载  
	});  
	tree.render();  // 渲染树形 
	var cm=new Ext.grid.ColumnModel([
	    new Ext.grid.RowNumberer(),  //自动增加序列号
	    //sm, //加到每列的前边
	    {header:'人员工号',dataIndex:"operatorCode",sortable:true}, //True表示为可在该列上进行排列
	    {header:'人员账号',dataIndex:"userAccount"},
	    {header:'员工姓名',dataIndex:"userName"},
	    {header:'角色',dataIndex:"roleName"},
	    {header:'userID',dataIndex:"userID",hidden:true},
	    {header:'roleID',dataIndex:"roleID",hidden:true}
	]);//定义相应的列模型
	var store=new Ext.data.JsonStore({
	 	url: 'userrole_load',
	 	autoLoad : false,
	 	// root: 'result',
	 	// idProperty:'id',
		//totalProperty:'result',
	    fields: ["operatorCode", "userAccount", "userName","roleName","userID","roleID"]
	});//存储前两项的定义的东西，将其连接起来
	store.load({
		params:{
			departmentID:thenode.id
		}
	});
	                         	
	var panel = new Ext.grid.GridPanel({
	    cm:cm,
	    //sm:sm,
	    store:store,
	    autoHeight:true,  //设置表格的高度 true为自动获取表格的大小
	    renderTo:'grid' , //渲染容器
	    enableColumnMove:false,//不可以使表格列移动
	    enableColumnResize:false, //不可以改变列的宽度
	    stripeRows:false, //True表示为显示行的分隔符
	    loadMask:true,  //会有一个Ext.LoadMask的遮罩效果
	    trackMouseOver : true,  //True表示为鼠标移动时高亮显示（默认为true）。
	    enableDragDrop : true,
	    viewConfig:{
	      forceFit:true //让没列自动填满表格，根据你设置的宽度按比例分配
	    },
	    tbar:[{
	    	text: "删除",disabled:true,id:'cDeleteBox',
	    	icon:'../image/public/user_delete.png',
	    	handler:function() {
	    		Ext.MessageBox.confirm("提示","您确定要删除这些信息吗?", function(button,text){   
					if(button=='yes'){
						var record=panel.getSelectionModel().getSelected();
						if(record==null){
							alert("请您选择要删除的用户角色信息");
						}else{
							Ext.Ajax.request({
								url:'userrole_delete',
								success:function(response){
									var result = Ext.util.JSON.decode(response.responseText);
									if(result.success==true){
										store.load({
											params:{
												departmentID:thenode.id
											}
										});
									}else{
										Ext.Msg.alert("提示","操作失败，请重试。") ;
									}
								},
								params:{userID:record.get("userID"),roleID:record.get("roleID")}
							});
						}
						
					}
	    		});
	    		
	    	}
		},{
			text: "修改",disabled:true,id:'cModifyBox',
			icon:'../image/public/user_delete.png',
			handler:function() {
				Ext.MessageBox.confirm("提示","您确定要修改这些信息吗?", function(button,text){   
					if(button=='yes'){
						
						
						var record=panel.getSelectionModel().getSelected();
						if(record==null){
							alert("请您选择要修改的用户角色信息");
						}else{
							Ext.getBody().mask();
							showWindown("userrole_update");
			        		userform.getForm().setValues({
			        			"userName" : record.get("userName"),
			        			"roleName": record.get("roleName"),
			        			"userID": record.get("userID"),
			        			"roleID": record.get("roleID"),
			        			"oldUserID": record.get("userID"),
			        			"oldRoleID": record.get("roleID")
			        		});
						}
		        		
					}
					
				});
				
			}
			
		},{
	    	text: '增加',disabled:true,id:'cAddBox',
	    	icon:'../image/public/user_add.gif',
	        handler:function(){
	        	Ext.getBody().mask();
	        	userStore.load({
					params:{
						departmentID:thenode.id
					}
				});
	        	roleStore.load({
					params:{
						departmentID:thenode.id
					}
				});
	        	showWindown("userrole_add");
	        }
		}],
	    bbar:new Ext.PagingToolbar({
	    pageSize:3,  //每页显示几条
	    store:store,
	    displayInfo:true,
	    displayMsg:'显示{0}，到{1}条，一共{2}',  //固定写法
	    emptyMsg:'无此记录'
	  })
	 });
	
	function showWindown(urlString) {
		userform=new Ext.form.FormPanel({
		frame:true,
		height:190,
		buttonAlign:'top',
		layout:'form',
		items:[
		
		{
			xtype:'combo',
			fieldLabel: '员工',
            hiddenName:'userID',
            emptyText:'--请选择--',
            forceSelection: true,
            listWidth: 150,
            store: userStore,
            valueField:'userID',
            displayField:'userName',
            typeAhead: true,
            mode: 'local',
            triggerAction: 'all',
            selectOnFocus:true,
            allowBlank:false
		},{
			xtype:'combo',
			 fieldLabel: '角色',
                hiddenName:'roleID',
                emptyText:'--请选择--',
                forceSelection: true,
                listWidth: 150,
                store: roleStore,
                valueField:'id',
                displayField:'name',
                typeAhead: true,
                mode: 'local',
                triggerAction: 'all',
                selectOnFocus:true,
                allowBlank:false
		},
		{
			xtype:'hidden',
			name:'oldUserID'
		},
		{
			xtype:'hidden',
			name:'oldRoleID'
		}],
		buttons:[{
			text: "确认",
		       handler:function(){ 
		    	   if ( userform.getForm().isValid() ){
		    	    userform.form.submit({   
		        	waitMsg : '正在提交数据....',   
		            url:urlString,   
		            method:'post', 
			            success:function(userform,action){  
			            	
			            	var result = Ext.util.JSON.decode(action.response.responseText);
			            	if(result.success==true) {
			            		if(urlString=="userrole_add"){
			            			win.close();
			            			store.load({
										params:{
											departmentID:thenode.id
										}
									});
			            			Ext.getBody().unmask();
			            		}else if(urlString=="userrole_update"){
			            			win.close() ;
			            			store.load({
										params:{
											departmentID:thenode.id
										}
									});
			            			Ext.getBody().unmask();
			            		}
			            		
			            	}else{
			            		Ext.Msg.alert("提示","操作失败，请重试。") ;
			            	}
			            }
			          }); 
			       }
			       }
	     },{
	        text: "取消",
	        handler:function(){ 
	           	win.close() ;
	           	Ext.getBody().unmask();
	        }
	     }]
		});
		var win=new Ext.Window({
				//title:'添加值班人员',
				 width:400,
				 height:220,
				 items:[userform],
				 xtype:'form',
				 listeners:{"beforedestroy":function(obj)
	                 { 
					 Ext.getBody().unmask();  
	                    // obj.show(); return false; 
	                  }
				}  
		});
		win.show();
	}
	
	 new Ext.Viewport({  
		layout : 'border', // 使用border布局  
		border:false,
		items:[{
			region:'west',
			border:false,
			width:200,
			items:[tree]
		},{
			region:'center',
			border:false,
			items:[panel]
		}],
		listeners:{
			'beforerender' : function(cmp) {
				// set role
				var store=new Ext.data.JsonStore({
					url: '../system/role_loadFunc?funcCode=ControlRoleUser',
					autoLoad : true,
					fields: ["functioncode"]
				});
				store.load({
				    callback: function(records, options, success){
				    	var i=0;
				    	for(; i<records.length; i++) {
				    		var id = records[i].get("functioncode");
				    		//alert('d'+Ext.getCmp('56').text);
				    		if(Ext.getCmp(id)!=null) {
				    			Ext.getCmp(id).setDisabled(false);
				    		}
				        }
				    },
				    scope: store
				});
			}
		}
	 }); 
	 userStore.load({
			params:{
				departmentID:thenode.id
			}
		});
 	roleStore.load({
			params:{
				departmentID:thenode.id
			}
		});
});


</script> 
</head>
<body>
<div id="tree" ></div>
<div id="grid"></div>
</body>
</html>